<?php

declare(strict_types=1);
/**
 * This file is part of Hyperf.
 *
 * @link     https://www.hyperf.io
 * @document https://hyperf.wiki
 * @contact  group@hyperf.io
 * @license  https://github.com/hyperf/hyperf/blob/master/LICENSE
 */
namespace App\Request;

use Hyperf\Validation\Request\FormRequest;

class LoginMobileCodeRequest extends FormRequest
{
    /**
     * Determine if the user is authorized to make this request.
     */
    public function authorize(): bool
    {
        return true;
    }

    /**
     * Get the validation rules that apply to the request.
     */
    public function rules(): array
    {
        return [
            'mobile_area' => 'required',
            'mobile' => 'required',
            'code' => 'required',
            'card_no' => 'required',
            'lang' => 'sometimes'
        ];
    }

    public function messages(): array
    {
        $mobileAreaMsg = '';
        $mobileMsg = '';
        $mobileCodeMsg = '';
        $cardMsg = '';

        if ($this->input('lang') == 'fr') {

            $mobileAreaMsg = 'Code international du téléphone portable requis.';
            $mobileMsg = 'Numéro de téléphone portable requis.';
            $mobileCodeMsg = 'Code de vérification du téléphone portable requis.';
            $cardMsg = 'Le numéro de carte est requis.';
        }elseif ($this->input('lang') == 'de') {

            $mobileAreaMsg = 'Internationale Vorwahl des Mobiltelefons erforderlich.';
            $mobileMsg = 'Mobiltelefonnummer erforderlich.';
            $mobileCodeMsg = 'Handy-Verifizierungscode erforderlich.';
            $cardMsg = 'Die Kartennummer ist erforderlich.';
        }elseif ($this->input('lang') == 'nl') {

            $mobileAreaMsg = 'Internationaal mobiel telefoonnummer vereist.';
            $mobileMsg = 'Mobiel telefoonnummer vereist.';
            $mobileCodeMsg = 'Mobiele verificatiecode vereist.';
            $cardMsg = 'Het kaartnummer is vereist.';
        }elseif ($this->input('lang') == 'it') {

            $mobileAreaMsg = 'Codice internazionale del telefono cellulare richiesto.';
            $mobileMsg = 'Numero di telefono cellulare richiesto.';
            $mobileCodeMsg = 'Codice di verifica del telefono cellulare richiesto.';
            $cardMsg = 'Il numero della carta è richiesto.';
        }elseif ($this->input('lang') == 'es') {

            $mobileAreaMsg = 'Se requiere el código internacional del teléfono móvil.';
            $mobileMsg = 'Se requiere el número de teléfono móvil.';
            $mobileCodeMsg = 'Se requiere el código de verificación del teléfono móvil.';
            $cardMsg = 'Se requiere el número de tarjeta.';
        }

        return [
            'mobile_area.required' => $mobileAreaMsg,
            'mobile.required' => $mobileMsg,
            'code.required' => $mobileCodeMsg,
            'card_no.required' => $cardMsg,
        ];
    }
}
